import jdk.swing.interop.SwingInterOpUtils;

import java.lang.reflect.Array;
import java.util.Arrays;
import java.util.Scanner;
public class Test {
    public static void main(String[] args) {

    }
public static void reverse(int[]array){
    int left=0;
    int right=array.length-1;
    while(left<=right){
        int tmp=array[left];
        array[left]=array[right];
        array[right]=tmp;
        left++;
        right--;
    }
}
    public static void main10(String[] args) {
        //数组的逆序
        int[]array={1,2,3,4,5,6,7,8,9};
        reverse(array);
        System.out.println(Arrays.toString(array));
    }
    public static void main9(String[] args) {
        //数组的拷贝
        int[]array=new int[]{1,2,3,4,5,6,7,8};
        int[]array2= Arrays.copyOf(array,array.length*2);//第一个参数是要拷贝哪个数组的内容，第二个参数是空间，可扩容
        System.out.println(Arrays.toString(array2));
    }
    public static void bubbleSort(int[]array){

        for(int i=0;i<array.length-1;i++){
            boolean flg=false;
            for(int j=0;j<array.length-1-i;j++){
                if(array[j]>array[j+1]){
                    int tmp=array[j];
                    array[j]=array[j+1];
                    array[j+1]=tmp;
                    flg=true;
                }
            }
            if(flg==false){
                return;
            }
        }
    }
    public static void main8(String[] args) {
        int[] array=new int[]{5,2,4,1,3,8,6,7,9};
         bubbleSort(array);
        for(int i=0;i<array.length;i++){
            System.out.println(array[i]);
        }
    }

    public static int findNum(int []array,int num){
        //顺序查找
        for(int i=0;i<array.length;i++){
            if(num==array[i]){
                return i;
            }
        }
       return -1;
    }
    //二分查找
    public  static int findNum2(int []array,int num){
        int left=0;
        int right=array.length-1;
        while(left<=right){
            int mid=(right+left)/2;
            if(array[mid]==num){
                return mid;
            }
            else if(array[mid]>num){
                right=mid-1;
            }
            else{
                left=mid+1;
            }
        }
        return -1;
    }
    public static void main7(String[] args) {
        //顺序查找数组中的数据
        int[]array=new int[]{1,2,3,4,5};
        Scanner scaner=new Scanner(System.in);
        int num= scaner.nextInt();
        int key=findNum(array,num);
        //顺序查找
        System.out.println(key);
        //二分查找
        key=findNum2(array,num);
        //java提供的二分查找函数
        int ret= Arrays.binarySearch(array,num);
        System.out.println(key);
        System.out.println(ret);
        //数组排序
//        int []array1=new int[]{4,2,1,3,5,6,8,7,9};
//        Arrays.sort(array1);//默认从小到大
//        for(int i=0;i<array.length;i++){
//            System.out.println(array1[i]);
//        }

    }
    public static void main6(String[] args) {
        //求数组中元素的平均值
        int avg=0;
        int[]array=new int[]{1,2,3,4,5,6,7,8,9};
        for(int i=0;i<array.length;i++){
            avg+=array[i];
        }
        avg/=array.length;
        System.out.println(avg);
    }
    public static String myTostring(int[]array){
        String str="";
        str+="[";
        for(int i=0;i<array.length;i++){
            if(i== array.length-1){
                str+=array[i];
            }
            else {
                str+=array[i]+",";
            }
        }
        str+="]";
        return str;
    }
    public static void main5(String[] args) {
        int[]array=new int[]{1,2,3,4,5,6,7,8,9};
        System.out.println(Arrays.toString(array));
        System.out.println(myTostring(array));
    }




    public static void main4(String[] args) {
        int[]arry1={1,2,3,4,5,6};
        int[]arry2=arry1;
        for(int i=0;i<arry1.length;i++){
          System.out.println(arry2[i]);
        }
        arry2[1]=1;
        for(int i=0;i<arry1.length;i++){
            System.out.println(arry1[i]);
        }

    }


public static int add(int x,int y){
    return x>y?x:y;
}
public static float add2(float x,float y){
    return x>y?x:y;
}
    public static void main3(String[] args) {
        //在同一个类中,分别定义求两个整数的方法 和 三个小数之和的方法。 并执行代码，求出结果
        int num1=0;
        int num2=0;
        float num3=0;
        float num4=0;
        Scanner sanner=new Scanner(System.in);
        num1=sanner.nextInt();
        num2=sanner.nextInt();
        num3=sanner.nextFloat();
        num4=sanner.nextFloat();
        int add1=add(num1,num2);
        float add2=add2(num3,num4);
        System.out.println(add1);
        System.out.println(add2);



    }





    public static int max2(int x,int y){
        if(x>y){
            return x;
        }
        else{
            return y;
        }
    }
    public static int max3(int x,int y, int z){
       int max=max2(x,y);
       int max2=max2(max,z);
       return max2;
    }
    public static void mai2(String[] args) {
  //使用函数求最大值：创建方法求两个数的最大值max2，随后再写一个求三个数最大值的函数max3；要求max3这个函数调用max2这个函数来实现三个数的最大值计算
        int num1=0;
        int num2=0;
        int num3=0;
        Scanner sanner=new Scanner(System.in);
        num1=sanner.nextInt();
        num2=sanner.nextInt();
        num3=sanner.nextInt();
        int max=max3(num1,num2,num3);
        System.out.println(max);

    }






    public static void main1(String[] args) {
        //数组的初始化
        int[] array = new int[]{1, 2, 3, 4, 5, 6, 7, 8, 9};
        String[] array2 = new String[]{"hell", "java", "!!!"};
        //数组的遍历两种方式
        for (int i = 0; i < array.length; i++) {
            System.out.println(array[i]);
        }
        //第二种方式 for-each
        for (int x : array) {
            System.out.print(x);
        }
        //第三种方式遍历数组:以字符串的方式把数组中的内容一个一个的都输出出来
        String ret= Arrays.toString(array);
        System.out.println(ret);
    }
}
